// apply.js
const app = getApp();

Page({
  data: {
    formData: {
      name: '',
      contactName: '',
      contactPhone: '',
      email: '',
      region: ['', '', ''],
      address: '',
      companyTypeIndex: -1,
      license: '',
      permit: '',
      businessIndex: [-1, -1],
      description: '',
      logo: '',
      cover: '',
      agreement: false
    },
    companyTypes: ['个体工商户', '有限责任公司', '股份有限公司', '合伙企业', '其他'],
    businessTypes: [
      ['国内游', '出境游', '周边游', '定制游', '主题游'],
      ['跟团游', '自由行', '自驾游', '邮轮', '团建', '亲子', '蜜月', '其他']
    ],
    regions: [
      { id: 'qinghai', name: '青甘', selected: false },
      { id: 'xinjiang', name: '新疆', selected: false },
      { id: 'yunnan', name: '云南', selected: false },
      { id: 'ningxia', name: '宁夏', selected: false },
      { id: 'xizang', name: '西藏', selected: false },
      { id: 'guizhou', name: '贵州', selected: false },
      { id: 'huadong', name: '华东', selected: false },
      { id: 'guangxi', name: '广西', selected: false },
      { id: 'xian', name: '西安', selected: false },
      { id: 'sichuan', name: '四川', selected: false },
      { id: 'neimeng', name: '内蒙', selected: false },
      { id: 'dongbei', name: '东北', selected: false },
      { id: 'guangdong', name: '广东', selected: false }
    ]
  },

  onLoad: function() {
    // 检查登录状态
    if (!app.globalData.isLoggedIn) {
      wx.showModal({
        title: '提示',
        content: '请先登录后再申请商家入驻',
        showCancel: false,
        success: (res) => {
          if (res.confirm) {
            wx.navigateBack();
          }
        }
      });
    }
  },

  // 商家名称输入
  onNameInput: function(e) {
    this.setData({
      'formData.name': e.detail.value
    });
  },

  // 联系人输入
  onContactNameInput: function(e) {
    this.setData({
      'formData.contactName': e.detail.value
    });
  },

  // 联系电话输入
  onContactPhoneInput: function(e) {
    this.setData({
      'formData.contactPhone': e.detail.value
    });
  },

  // 电子邮箱输入
  onEmailInput: function(e) {
    this.setData({
      'formData.email': e.detail.value
    });
  },

  // 地区选择
  onRegionChange: function(e) {
    this.setData({
      'formData.region': e.detail.value
    });
  },

  // 详细地址输入
  onAddressInput: function(e) {
    this.setData({
      'formData.address': e.detail.value
    });
  },

  // 企业类型选择
  onCompanyTypeChange: function(e) {
    this.setData({
      'formData.companyTypeIndex': e.detail.value
    });
  },

  // 上传营业执照
  uploadLicense: function() {
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        // 获取图片临时路径
        const tempFilePath = res.tempFilePaths[0];
        
        // 显示上传中
        wx.showLoading({
          title: '上传中...',
          mask: true
        });
        
        // 模拟上传
        setTimeout(() => {
          this.setData({
            'formData.license': tempFilePath
          });
          
          wx.hideLoading();
          
          wx.showToast({
            title: '上传成功',
            icon: 'success'
          });
        }, 1000);
        
        // 实际项目中的云函数调用
        // wx.cloud.uploadFile({
        //   cloudPath: `merchant/license/${Date.now()}.jpg`,
        //   filePath: tempFilePath,
        //   success: res => {
        //     this.setData({
        //       'formData.license': res.fileID
        //     });
        //     
        //     wx.hideLoading();
        //     
        //     wx.showToast({
        //       title: '上传成功',
        //       icon: 'success'
        //     });
        //   },
        //   fail: err => {
        //     console.error('上传失败', err);
        //     
        //     wx.hideLoading();
        //     
        //     wx.showToast({
        //       title: '上传失败',
        //       icon: 'none'
        //     });
        //   }
        // });
      }
    });
  },

  // 上传许可证
  uploadPermit: function() {
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        // 获取图片临时路径
        const tempFilePath = res.tempFilePaths[0];
        
        // 显示上传中
        wx.showLoading({
          title: '上传中...',
          mask: true
        });
        
        // 模拟上传
        setTimeout(() => {
          this.setData({
            'formData.permit': tempFilePath
          });
          
          wx.hideLoading();
          
          wx.showToast({
            title: '上传成功',
            icon: 'success'
          });
        }, 1000);
        
        // 实际项目中的云函数调用
        // wx.cloud.uploadFile({
        //   cloudPath: `merchant/permit/${Date.now()}.jpg`,
        //   filePath: tempFilePath,
        //   success: res => {
        //     this.setData({
        //       'formData.permit': res.fileID
        //     });
        //     
        //     wx.hideLoading();
        //     
        //     wx.showToast({
        //       title: '上传成功',
        //       icon: 'success'
        //     });
        //   },
        //   fail: err => {
        //     console.error('上传失败', err);
        //     
        //     wx.hideLoading();
        //     
        //     wx.showToast({
        //       title: '上传失败',
        //       icon: 'none'
        //     });
        //   }
        // });
      }
    });
  },

  // 主营业务选择
  onBusinessChange: function(e) {
    this.setData({
      'formData.businessIndex': e.detail.value
    });
  },

  // 切换地区选择
  toggleRegion: function(e) {
    const id = e.currentTarget.dataset.id;
    const regions = this.data.regions;
    
    // 找到对应的地区
    const index = regions.findIndex(item => item.id === id);
    
    if (index !== -1) {
      // 切换选中状态
      regions[index].selected = !regions[index].selected;
      
      this.setData({
        regions: regions
      });
    }
  },

  // 商家简介输入
  onDescriptionInput: function(e) {
    this.setData({
      'formData.description': e.detail.value
    });
  },

  // 上传Logo
  uploadLogo: function() {
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        // 获取图片临时路径
        const tempFilePath = res.tempFilePaths[0];
        
        // 显示上传中
        wx.showLoading({
          title: '上传中...',
          mask: true
        });
        
        // 模拟上传
        setTimeout(() => {
          this.setData({
            'formData.logo': tempFilePath
          });
          
          wx.hideLoading();
          
          wx.showToast({
            title: '上传成功',
            icon: 'success'
          });
        }, 1000);
        
        // 实际项目中的云函数调用
        // wx.cloud.uploadFile({
        //   cloudPath: `merchant/logo/${Date.now()}.jpg`,
        //   filePath: tempFilePath,
        //   success: res => {
        //     this.setData({
        //       'formData.logo': res.fileID
        //     });
        //     
        //     wx.hideLoading();
        //     
        //     wx.showToast({
        //       title: '上传成功',
        //       icon: 'success'
        //     });
        //   },
        //   fail: err => {
        //     console.error('上传失败', err);
        //     
        //     wx.hideLoading();
        //     
        //     wx.showToast({
        //       title: '上传失败',
        //       icon: 'none'
        //     });
        //   }
        // });
      }
    });
  },

  // 上传封面图
  uploadCover: function() {
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        // 获取图片临时路径
        const tempFilePath = res.tempFilePaths[0];
        
        // 显示上传中
        wx.showLoading({
          title: '上传中...',
          mask: true
        });
        
        // 模拟上传
        setTimeout(() => {
          this.setData({
            'formData.cover': tempFilePath
          });
          
          wx.hideLoading();
          
          wx.showToast({
            title: '上传成功',
            icon: 'success'
          });
        }, 1000);
        
        // 实际项目中的云函数调用
        // wx.cloud.uploadFile({
        //   cloudPath: `merchant/cover/${Date.now()}.jpg`,
        //   filePath: tempFilePath,
        //   success: res => {
        //     this.setData({
        //       'formData.cover': res.fileID
        //     });
        //     
        //     wx.hideLoading();
        //     
        //     wx.showToast({
        //       title: '上传成功',
        //       icon: 'success'
        //     });
        //   },
        //   fail: err => {
        //     console.error('上传失败', err);
        //     
        //     wx.hideLoading();
        //     
        //     wx.showToast({
        //       title: '上传失败',
        //       icon: 'none'
        //     });
        //   }
        // });
      }
    });
  },

  // 协议勾选
  onAgreementChange: function(e) {
    this.setData({
      'formData.agreement': e.detail.value.includes('agree')
    });
  },

  // 跳转到协议页面
  goToAgreement: function() {
    wx.navigateTo({
      url: '/pages/agreement/merchant'
    });
  },

  // 提交表单
  submitForm: function() {
    // 检查协议是否勾选
    if (!this.data.formData.agreement) {
      wx.showToast({
        title: '请先同意商家入驻协议',
        icon: 'none'
      });
      return;
    }
    
    // 表单验证
    const formData = this.data.formData;
    
    if (!formData.name) {
      wx.showToast({
        title: '请输入商家名称',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.contactName) {
      wx.showToast({
        title: '请输入联系人姓名',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.contactPhone) {
      wx.showToast({
        title: '请输入联系电话',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.email) {
      wx.showToast({
        title: '请输入电子邮箱',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.region[0]) {
      wx.showToast({
        title: '请选择所在地区',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.address) {
      wx.showToast({
        title: '请输入详细地址',
        icon: 'none'
      });
      return;
    }
    
    if (formData.companyTypeIndex < 0) {
      wx.showToast({
        title: '请选择企业类型',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.license) {
      wx.showToast({
        title: '请上传营业执照',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.permit) {
      wx.showToast({
        title: '请上传旅行社业务经营许可证',
        icon: 'none'
      });
      return;
    }
    
    if (formData.businessIndex[0] < 0) {
      wx.showToast({
        title: '请选择主营业务',
        icon: 'none'
      });
      return;
    }
    
    // 检查是否选择了经营区域
    const selectedRegions = this.data.regions.filter(item => item.selected);
    
    if (selectedRegions.length === 0) {
      wx.showToast({
        title: '请选择经营区域',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.description) {
      wx.showToast({
        title: '请输入商家简介',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.logo) {
      wx.showToast({
        title: '请上传商家Logo',
        icon: 'none'
      });
      return;
    }
    
    if (!formData.cover) {
      wx.showToast({
        title: '请上传商家封面图',
        icon: 'none'
      });
      return;
    }
    
    // 显示提交中
    wx.showLoading({
      title: '提交中...',
      mask: true
    });
    
    // 构建提交数据
    const submitData = {
      ...formData,
      companyType: this.data.companyTypes[formData.companyTypeIndex],
      business: {
        type: this.data.businessTypes[0][formData.businessIndex[0]],
        subType: this.data.businessTypes[1][formData.businessIndex[1]]
      },
      regions: selectedRegions.map(item => item.id),
      submitTime: new Date().getTime()
    };
    
    // 模拟提交
    setTimeout(() => {
      wx.hideLoading();
      
      wx.showModal({
        title: '提交成功',
        content: '您的商家入驻申请已提交，我们将在3个工作日内进行审核，请耐心等待。',
        showCancel: false,
        success: (res) => {
          if (res.confirm) {
            wx.navigateBack();
          }
        }
      });
    }, 2000);
    
    // 实际项目中的云函数调用
    // wx.cloud.callFunction({
    //   name: 'submitMerchantApply',
    //   data: submitData,
    //   success: res => {
    //     wx.hideLoading();
    //     
    //     if (res.result && res.result.success) {
    //       wx.showModal({
    //         title: '提交成功',
    //         content: '您的商家入驻申请已提交，我们将在3个工作日内进行审核，请耐心等待。',
    //         showCancel: false,
    //         success: (res) => {
    //           if (res.confirm) {
    //             wx.navigateBack();
    //           }
    //         }
    //       });
    //     } else {
    //       wx.showModal({
    //         title: '提交失败',
    //         content: res.result.message || '提交失败，请稍后重试',
    //         showCancel: false
    //       });
    //     }
    //   },
    //   fail: err => {
    //     console.error('提交失败', err);
    //     
    //     wx.hideLoading();
    //     
    //     wx.showModal({
    //       title: '提交失败',
    //       content: '网络错误，请稍后重试',
    //       showCancel: false
    //     });
    //   }
    // });
  }
});